home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / Weubblers handler.adf / Docs / support / Mfm-Routinen.Doc < prev    next >
Text File  |  1989-01-09  |  2KB  |  77 lines

  1.  
  2. MFM-Routinen
  3.  
  4.  
  5. Name: 
  6.       SMfmSetBuffer - Setze den Anfang des Mfm-Puffers und starte CRC
  7.       SMfmEncodeByte - Schreibe ein MFM-Byte
  8.       SMfmEncode - Schreibe einen Puffer von n MFM-Bytes
  9.       SMfmEncodeBytes - Schreibe n MFM-Bytes
  10.       SMfmEncodeSync - Schreibe 3 SYNC-Bytes und starte CRC
  11.       SMfmEncodeCrc - Schreibe die CRC-Pruefsumme
  12.  
  13.       StandardMfmDecode - decodiere einen Puffer von MFM-Bytes
  14.  
  15. Syntax:
  16.       SMfmSetBuffer (buffer)
  17.       unsigned short * buffer;
  18.  
  19.       SMfmEncodeByte (byte)
  20.       unsigned char byte;
  21.  
  22.       SMfmEncode (buffer,n)
  23.       unsigned char * buffer; int n;
  24.  
  25.       SMfmEncodeBytes (n,c1,c2,c3...)
  26.       int n; unsigned char c1,c2,c3,...;
  27.  
  28.       SMfmEncode Sync()
  29.  
  30.       SMfmEncodeCrc()
  31.  
  32.       StandardMfmDecode(buf1,buf2,n)
  33.       unsigned short * buf1; unsigned char * buf2; int n;
  34.  
  35. Ergebnis:
  36.       Keins
  37.  
  38. Beschreibung:
  39.       Diese Routinen sind normalerweise fuer den Benutzer transparent,
  40.       sie werden von den entsprechenden Routinen zum Lesen und Schreiben
  41.       von PC-Routinen aufgerufen. Sie rechnen das auf PC-Disketten
  42.       benutzte MFM-Format in lesbares Format um (MfmDecode) oder
  43.       umgekehrt (MfmEncode). Ausserdem starten die Encode-Prozeduren
  44.       automatisch den CRC-Pruefsummengenerator, so dass Pruefsummen
  45.       direkt in den Track geschrieben werden koennen.
  46.  
  47.       Die Encode-Prozeduren arbeiten mit einem Puffer, der einmal angegeben
  48.       wird und der dann immer als Ziel benutzt wird. Weitere Erklaerungen
  49.       am Beispiel.
  50.  
  51. Beispiel:
  52.       a) In den Puffer TrackBuffer sei gerade ein Track gelesen worden.
  53.       Hier ist die Prozedur um 20 Bytes in SektorBuffer zu dekodieren:
  54.  
  55.       unsigned short * TrackBuffer;
  56.       unsigned char * SektorBuffer;
  57.  
  58.       while (*TrackBuffer==0x4489) TrackBuffer++;
  59.       StandardMfmDecode(TrackBuffer,SektorBuffer,20);
  60.  
  61.       b) Es sei zu kodieren: 1. 3 Syncbytes, 1 Byte 0xfe, 500 Bytes aus
  62.       dem Puffer buffer und die Bytes 1,2,3 und 4 sowie die CRC-Pruef-
  63.       summe nach TrackBuffer.
  64.  
  65.       unsigned short * TrackBuffer;
  66.       unsigned char * buffer;
  67.  
  68.       SMfmSetBuffer(TrackBuffer);
  69.       SMfmEncodeSync();
  70.       SMfmEncodeByte(0xfe);
  71.       SMfmEncode(buffer,500);
  72.       SMfmEncodeBytes(4,1,2,3,4);
  73.       SMfmEncodeCRC();
  74.  
  75. Bekannte Fehler:
  76.       Keine.
  77.